tar去掉目录前缀

tar打包,去掉目录前缀

一、tar的常规用法
1.1 命令格式: tar -cf 目标文件 源文件

 目标文件可以带有全路径的文件名(/tmp/test.tar)
 源文件可以是一个目录,也可以是一个文件(/home/apple/test, /home/apple/backup.sh
 tar -cf /tmp/test.tar /home/apple/test

1.2 目录前缀问题:
 tar对源文件是按照输入的目录结构递归打包的,如何去掉目录前缀呢?使用-C选项:

 tar -cf 目标文件 -C 源文件所在目录 源文件
 tar -cf /tmp/test-no-prefix.tar -C /home/apple test

二、tar的其他选项参数:

(1) 压缩选项:

tar命令只能将文件加打包,方便文件夹传输,压缩使用-z选项(必须放在第一个,将文件一bzip的形式压缩)

tar -zcf /tmp/test-no-prefix.tar.gz /home/apple/test
# -v 选项用于输出文件递归详细信息,可以在熟练使用后忽略改选项

(2) 排除选项:

–exclude 打包排除一些文件或文件夹,每排除一个就需要一个exclude关键字,一般用于文件上传时去掉.git/.svn信息。

tar -zcf /tmp/test-no-prefix.tar.gz /home/apple/test --exclude '.git' --exclude '.svn'

三、tar功能提升:

(1) 编写成函数/home/apple/utils.sh

#!/bin/bash

# 格式: tar options src_dir dest_dir other_options

itar(){
    options=$1
	dest_dir=$2
	src_dir=$3
	shift 3
	base_dir=`dirname $src_dir`
	file_end=`basename $src_dir`
	tar $options $dest_dir -C $base_dir $file_end "$@"	
}

(2) 引入函数到当前shell会话(打开一个终端直至关闭)、

source shell脚本      . shell脚本
# 这两种方式都可以生效shell脚本,在当前终端生效
# 通常这个shell脚本定义了一些常量或者实用函数,可以引入到当前会话环境(可以是已经打开的终端, 也可以是一个shell脚本文件)。
$ source /home/apple/utils.sh
$ itar -cf /tmp/test-itar.tar /home/apple/test

  关于source的使用,见文件shell文件的调用-提取码: a97p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值